www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Services/admin/forum.php
<?php /** * @name XERCMS * @author Arno <XerCMS@163.com> [QQ:1328013] * @version 1.0.0 * @link http://www.XerCMS.com */ !defined('XERCMS') && exit('Access Denied'); class Service_admin_forum extends admin { function xercms() { $this->showboard(); } function updateboard() { $bid = int1(g('bid')); $board = p('board'); $setting = p('setting'); $board['admin'] = empty($board['admin']) ? array() : explode(',',$board['admin']); ini('forum/board/'.$bid,$board); ini('forum/board/'.$bid,$setting); $board['admin'] = implode(',',$board['admin']); $board['template'] = jsonSql($board['template']); DB::update('xercms_forum_board',$board,'bid = '.$bid); DB::update('xercms_board_setting',$setting,'bid = '.$bid); $this->setModerator($bid,$board['admin']); CACHE::forum_board($bid); $this->tips(11); } function editboard() { $bid = int1(g('bid')); $boardsetting = ini('forum/board/'.$bid);$boardsetting['admin'] = empty($boardsetting['admin']) ? '' : implode(',',$boardsetting['admin']); $cats = DB::fetch_all('select * from xercms_topic_category'); include_once($this->tpl('forum.htm')); } function moderators() { $page = int1(g('page')); $moderators = DB::fetch_all('SELECT m.*,p.nick,b.name,s.time FROM xercms_forum_moderator m LEFT JOIN xercms_member_profile p ON p.uid = m.uid LEFT JOIN xercms_member_session s ON s.uid = m.uid LEFT JOIN xercms_forum_board b ON b.bid = m.bid LIMIT '.(($page - 1)*30).',30'); include_once($this->tpl('forum.htm')); } function cats() { global $G; $cats = DB::data('select * from xercms_topic_category'); include_once($this->tpl('forum.htm')); } function updatecat() { $id = int1(g('id'));$data = p('data'); DB::update('xercms_topic_category',$data,'id = '.$id); $this->tips(11,'?s=admin&e=forum&a=cats'); } function insertcat() { $id = int1(g('id'));$data = p('data'); DB::insert('xercms_topic_category',$data); $this->tips(11,'?s=admin&e=forum&a=cats'); } function delcat() { $id = int1(g('id')); DB::delete('xercms_topic_category',array('id'=>$id)); $rows = DB::affected_rows(); if($rows) { $this->tips('删除成功。','?s=admin&e=forum&a=cats'); } else $this->tips('删除失败。','?s=admin&e=forum&a=cats'); } function updateaccess() { $bid = int1(g('bid')); $access = p('forum'); ini('forum/board/'.$bid,$access); DB::update('xercms_board_setting',array('access'=>jsonSql($access)),'bid = '.$bid); $this->tips(11); } function updatecredits() { $bid = int1(g('bid'));$credits = p('credits');$credit = array(); foreach($credits['credits'] as $k=>$v) { $credit['credit'][$k] = array(); $credit['credit'][$k][strtr($v['type'],array('credit'=>''))] = $v['op']; } ini('forum/board/'.$bid,$credit); DB::update('xercms_board_setting',array('credit'=>jsonSql($credit['credit'])),'bid = '.$bid); $this->tips(11); } function editaccess() { $bid = int1(g('bid')); $boardsetting = ini('forum/board/'.$bid); //$boardsetting['access'] = $boardsetting['thread']; $group = ini('member/groups'); include_once($this->tpl('forum.htm')); } function editcredits() { $bid = int1(g('bid'));$group = ini('member/groups'); $boardsetting = ini('forum/board/'.$bid);$temp = array(); foreach($boardsetting['credit'] as $k=>$v) { $boardsetting['credit'][$k] = array(); list($boardsetting['credit'][$k]['type'],$boardsetting['credit'][$k]['op']) = each($v); $boardsetting['credit'][$k]['type'] = 'credit'.$boardsetting['credit'][$k]['type']; } $configs = rs('config')->search(array('file'=>'globals','tag'=>'credits')); $credits = is_array($configs['content']) ? $configs['content'] : array(); //print_r($boardsetting);exit; include_once($this->tpl('forum.htm')); } function showboard() { global $boards; $boards = array(); $this->forum_boards(); include_once($this->tpl('forum.htm')); } function commentstate() { $id = int1(g('id'));$state = (int)g('state'); DB::query('update xercms_forum_comment set state = \''.$state.'\' where id = \''.$id.'\''); $this->tips(11,'?s=admin&e=forum&a=showcomments'); } function updatestate() { $tid = int1(g('tid'));$state = (int)g('state'); DB::query('update xercms_forum_topic set state = \''.$state.'\' where tid = \''.$tid.'\''); $this->tips(11,'?s=admin&e=forum&a=showtopics'); } function postsstate() { $pid = int1(g('pid'));$state = (int)g('state'); DB::query('update xercms_forum_posts set state = \''.$state.'\' where pid = \''.$pid.'\''); $this->tips(11,'?s=admin&e=forum&a=showposts'); } function showtopics() { $page = int1(g('page')); $topics = DB::fetch_all('SELECT t.*,b.name as board,m.nick as author FROM xercms_forum_topic t,xercms_member_profile m,xercms_forum_board b WHERE t.bid = b.bid AND t.uid = m.uid LIMIT '.(($page-1)*30).',30'); $topics_total = DB::result_first('SELECT count(*) FROM xercms_forum_topic t,xercms_member_profile m,xercms_forum_board b where t.bid = b.bid AND t.uid = m.uid'); $pagehtml = multi($topics_total/30,$page); include_once($this->tpl('forum.htm')); } function showcomments() { $page = int1(g('page')); $comments = DB::data('select c.*,p.nick from xercms_forum_comment c left join xercms_member_profile p on p.uid = c.uid ORDER BY c.state ASC,id DESC ',(($page-1)*30).',30'); foreach($comments as $k=>$v) { $comments[$k]['credit'] = 'credit'.$v['credit']; } $topics_total = DB::count('xercms_forum_comment'); $pagehtml = multi($topics_total/30,$page); include_once($this->tpl('forum.htm')); } function showposts() { $page = int1(g('page')); $posts = DB::fetch_all('SELECT p.*,m.nick as author from xercms_forum_posts p,xercms_member_profile m WHERE p.uid = m.uid LIMIT '.(($page-1)*30).',30'); $posts_total = DB::result_first('SELECT count(*) FROM xercms_forum_posts p,xercms_member_profile m WHERE p.uid = m.uid'); $pagehtml = multi($posts_total/30,$page); include_once($this->tpl('forum.htm')); } function delposts() { $pid = g('pid'); DB::delete('xercms_forum_posts',array('pid'=>$pid)); $this->tips(11,'?s=admin&e=forum&a=showposts'); } function del() { $bid = g('bid'); $all = rs('forum')->board_count(); if($all <= 1) { $this->tips('board_exists_one'); } $son = rs('forum')->board_count($bid); if($son <= 0) { if(file_exists(INC.'Data/forum/board/'.$bid.'.php')) unlink(INC.'Data/forum/board/'.$bid.'.php'); rs('forum')->delboard($bid); } else $this->tips('board_exists_son'); $this->tips(11); } function delModerator() { $bid = (int)g('bid');$uid = (int)g('uid'); if($bid && $uid) { DB::delete('xercms_forum_moderator',array('bid'=>$bid,'uid'=>$uid)); $board = ini('forum/board/'.$bid); $uids = DB::fetch_all('SELECT uid FROM xercms_forum_moderator WHERE bid = \''.$bid.'\''); $admin = array(); foreach($uids as $uid) { $admin[] = $uid['uid']; } ini('forum/board/'.$bid,array('admin'=>$admin)); } $this->tips(11); } function setModerator($bid,$uids) { if(empty($bid) || empty($uids)) { return; } DB::delete('xercms_forum_moderator',array('bid'=>$bid)); if(is_string($uids)) { $uids = explode(',',$uids); } foreach($uids as $uid) { DB::insert('xercms_forum_moderator',array('bid'=>$bid,'admin'=>X::$G['uid'],'uid'=>$uid,'time'=>X::$G['time'])); } } function insertboard() { $board = p('board'); $boardFile = ini('forum/board/'.$board['parent']); $board = array_merge($boardFile,$board); $SettingFile = array( 'bid'=>0, 'access'=>$boardFile['access'], 'credit'=>$boardFile['credit'], 'opencat'=>$boardFile['opencat'], 'mustcat'=>$boardFile['mustcat'], 'cats'=>$boardFile['cats'], 'audit'=>$boardFile['audit'], 'by'=>$boardFile['by'], 'order'=>$boardFile['order'], 'number'=>$boardFile['number'], 'showrely'=>$boardFile['showrely'], 'resttime'=>$boardFile['resttime'], ); foreach($SettingFile as $k=>$v) { unset($board[$k]); } $boardSql = $board; $boardSql['template'] = jsonSql($boardSql['template']); $boardSql['admin'] = empty($boardSql['admin']) ? '' : implode(',',$boardSql['admin']); $bid = DB::insert('xercms_forum_board',$boardSql); $SettingFile['bid'] = $bid; $this->setModerator($bid,$boardSql['admin']); $SettingSql = array( 'bid'=>$bid, 'access'=>jsonSql($SettingFile['access']), 'credit'=>jsonSql($SettingFile['credit']), 'opencat'=>$SettingFile['opencat'], 'mustcat'=>$SettingFile['mustcat'], 'cats'=>jsonSql($SettingFile['cats']), 'audit'=>$SettingFile['audit'], 'by'=>$SettingFile['by'], 'order'=>$SettingFile['order'], 'number'=>$SettingFile['number'], 'showrely'=>$SettingFile['showrely'], 'resttime'=>$SettingFile['resttime'], ); DB::insert('xercms_board_setting',$SettingSql); $data = array_merge($board,$SettingFile); ini('forum/board/'.$bid,$data); CACHE::forum_board($bid); $this->tips(11); } function editboardname() { $board = p('board'); foreach($board as $k=>$v) { if(!empty($v['name'])) { ini('forum/board/'.$k,'name',$v['name']); DB::update('xercms_forum_board',array('name'=>$v['name']),'bid = '.$k); CACHE::forum_board($k); } } $this->tips(11); } function forum_boards($top = 0,$layer = 0) { global $boards; $res = DB::query('select * from xercms_forum_board where parent = '.$top); while(is_resource($res) && $data = DB::fetch($res)) { $data['layer'] = $layer; $boards[] = $data; $this->forum_boards($data['bid'],($layer + 1)); } } function postsdata($id) { if($id == 0) { global $time; return array('tag'=>'','id'=>'','tid'=>'','title'=>'','aid'=>'','hit'=>'','flower'=>'','egg'=>'','score'=>'','updated'=>'','content'=>'','addtime'=>$time); } $res = DB::query('SELECT * FROM xercms_club_posts a,xercms_posts_article b WHERE a.id = \''.$id.'\' AND a.id = b.id'); $posts = array(); $res && $posts = DB::farray($res); return $posts; } function postslist($page) { $res = DB::query('SELECT * FROM xercms_club_posts ORDER BY updated DESC LIMIT '.($page*15).',15'); $posts = array(); while($res && $temp = DB::farray($res)) { if(isset($temp['title']) && !empty($temp['title'])) { $posts[] = $temp; } } return $posts; } function postsdel($id) { $res = DB::query('DELETE FROM xercms_club_posts WHERE id = \''.$id.'\''); } function postsupdate($id,$fid,$title,$tag,$content) { DB::query('UPDATE xercms_club_posts SET fid = \''.$fid.'\',title = \''.$title.'\',,updated = \''.X::$G['time'].'\' WHERE id = \''.$id.'\''); DB::query('UPDATE xercms_posts_article SET tag = \''.$tag.'\',content = \''.$content.'\' WHERE id = \''.$id.'\''); } function postsadd($fid,$title,$tag,$content) { $res = DB::query('INSERT INTO xercms_club_posts VALUES (NULL,\''.$title.'\',\''.$_SESSION['uid'].'\',0,\''.$fid.'\',\'0\',\'0\',\''.X::$G['time'].'\',\''.X::$G['time'].'\')'); $id = DB::lastid(); $res = DB::query('INSERT INTO xercms_posts_article VALUES (\''.$id.'\',\''.$tag.'\',\''.$content.'\')'); } } ?>